package view;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
 * Classe qui etend la classe JPanel, permet d'avoir une image en fond. (methode paint redéfinie).
 * @author julien
 */
public class backgroundedJPanel extends JPanel
{
	
	private static final long serialVersionUID = 1L;
	String filename;
        int largeur;
        int hauteur;
	
	public static Toolkit tk = Toolkit.getDefaultToolkit ();  
	public static Dimension screen = tk.getScreenSize ();

        /**
         * Constructeur de la classe
         * @param filename chemin relatif où se trouve l'image de fond, avec l'extension de l'image marquée !
         * @param largeur entier precisant la largeur que l'on veut pour l'image
         * @param hauteur entier precisant la hauteur que l'on veut pour l'image
         */
	public backgroundedJPanel(String filename, int largeur, int hauteur)
	{    
	 super();
	 this.filename = filename;
         this.hauteur = hauteur;
         this.largeur = largeur;
	 this.setBorder(javax.swing.BorderFactory.createEmptyBorder());
	}  

        /**
         * Fonction qui permet de peindre le composant avec l'image placée dans le constructeur.
         * @param g graphics, nécessaire à la methode paint
         */
	public void paint(Graphics g)  
	{  
		this.setOpaque(false);
                //g.setColor(this.getBackground());
                //g.fillOval(0, 0, 20, 20);
		if (!filename.equals(""))
		{
			 ImageIcon ii = new ImageIcon(this.getClass().getResource(this.filename));
			 ii = new ImageIcon(ii.getImage().getScaledInstance(this.largeur,this.hauteur,Image.SCALE_DEFAULT));
			 Image i=ii.getImage();
			 g.drawImage(i,0,0,null,this);  
			 super.paint(g);
		}
	}
}
